//////////////////////////////////////////////////////////////////////////

#ifndef _SETTINGS_H_
#include "settings.h"
#endif

//////////////////////////////////////////////////////////////////////////

#include <SDL\SDL.h>
#include <fstream>
#include <string>

//////////////////////////////////////////////////////////////////////////


std::string Settings::m_NickName;
std::string Settings::m_ServerAddress;
SDL_Rect Settings::m_Resolution;
bool Settings::m_FullscreenMode;
int Settings::m_Volume;


//////////////////////////////////////////////////////////////////////////


void Settings::Save()
{
    std::ofstream File(".\\settings");
    File <<m_ServerAddress <<"\n";
    File <<m_NickName <<"\n";
    File <<m_Resolution.w <<" " <<m_Resolution.h <<"\n";
    File <<m_FullscreenMode <<"\n";
    File <<m_Volume <<"\n";
    File.close();
}


//////////////////////////////////////////////////////////////////////////


void Settings::Load()
{
    std::ifstream File(".\\settings");

    if (File)
    {
        File >>m_ServerAddress;
        File >>m_NickName;
        File >>m_Resolution.w >>m_Resolution.h;
        File >>m_FullscreenMode;
        File >>m_Volume;
    }
    else
    {
        m_Resolution.w = 0;
        m_Resolution.h = 0;
        m_FullscreenMode = 0;
        m_ServerAddress = "localhost";
        m_NickName = "noname";
    }

    File.close();
}


//////////////////////////////////////////////////////////////////////////


void Settings::SetNickName(const std::string& _nickName)
{
    m_NickName = _nickName;
}


//////////////////////////////////////////////////////////////////////////


void Settings::SetServerAddress(const std::string& _serverAddress)
{
    m_ServerAddress = _serverAddress;
}


//////////////////////////////////////////////////////////////////////////


void Settings::SetResolution(SDL_Rect *_resolution)
{
    m_Resolution = *_resolution;
}


//////////////////////////////////////////////////////////////////////////


void Settings::SetFullscreenMode(bool _fullscreenMode)
{
    m_FullscreenMode = _fullscreenMode;
}


//////////////////////////////////////////////////////////////////////////


void Settings::SetVolume(int _volume)
{
    m_Volume = _volume;
}


//////////////////////////////////////////////////////////////////////////


std::string& Settings::GetNickName()
{
    return m_NickName;
}


//////////////////////////////////////////////////////////////////////////


std::string& Settings::GetServerAddress()
{
    return m_ServerAddress;
}


//////////////////////////////////////////////////////////////////////////


SDL_Rect *Settings::GetResolution()
{
    return &m_Resolution;
}


//////////////////////////////////////////////////////////////////////////


bool Settings::GetFullscreenMode()
{
    return m_FullscreenMode;
}


//////////////////////////////////////////////////////////////////////////


int Settings::GetVolume()
{
    return m_Volume;
}


//////////////////////////////////////////////////////////////////////////
